package com.haha.webSocket.core.entity.dateCollect;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.haha.webSocket.core.common.BotIntent;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;


/**
 * 认证数据对象
 */
@Setter
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AuthenticationDate implements BaseDate {

    /**
     * 监听事件类型
     * #{@link BotIntent}
     */
    private Integer intents;

    /**
     * 请求token
     */
    private String token;

    /**
     *
     * 分片
     * 考虑到开发者事件接收时可以实现负载均衡，QQ 提供了分片逻辑，事件通知会落在不同的分片上，该参数是个拥有两个元素的数组。
     * 例如：[0,4]，代表分为四个片，当前链接是第 0 个片，业务稍后应该继续建立 shard 为[1,4],[2,4],[3,4]的链接，才能完整接收事件，更多详细的内容可以参考 Shard Shard机制|QQ机器人文档
     * https://bot.q.qq.com/wiki/develop/api-v2/dev-prepare/interface-framework/event-emit.html#websocket-%E6%96%B9%E5%BC%8F
     * 若无需分片，使用[0, 1]即可。
     *
     */
    private Integer[] shard;

}
